package JZ.JZ23;

/**
 * @author corn
 * @create 2020-08-02-21:42
 */

/**
 * JZ23 二叉搜索树的后序遍历序列
 * 题目描述
 * 输入一个整数数组，判断该数组是不是某二叉搜索树的后序遍历的结果。
 * 如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
 *
 * 特点：遍历的时候，如果遇到比最后一个元素大的节点，就说明它的前面都比最后一个元素小，
 * 该元素后面的所有值都必须大于最后一个值，这两个条件必须都要满足。否则就说明该序列不是二叉树后序遍历。
 *
 * 全部满足：小小小小 大大大大（最后一个结点）
 */
public class verifySquenceOfBST {

}
class Solution {
    public boolean VerifySquenceOfBST(int [] sequence) {
        if(sequence.length==0){
            return false;
        }
        int sum = sequence.length-1;
        int count = 0;
        while(sum != 0){
            while(sequence[count] < sequence[sum]){
                ++count;
            }
            while(sequence[count] > sequence[sum]){
                ++count;
            }
            if(count < sum){
                return false;
            }
            --sum;
            count = 0;
        }
        return true;
    }
}
